package cl.zeke.cursos.jsf2spring3jpa2.vista.managedbeans.ejercicio6;

import cl.zeke.cursos.jsf2spring3jpa2.negocio.entities.Persona;
import cl.zeke.cursos.jsf2spring3jpa2.negocio.services.Ejercicio6PersonaService;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

@Component
@Scope("view")
public class Ejercicio6Pag1Bean implements Serializable {
    private static Logger log = LoggerFactory.getLogger(Ejercicio6Pag1Bean.class);
    
    @Autowired
    private Ejercicio6PersonaService ejercicio6PersonaService;
    
    /*datos del buscador*/
    private Integer rut = null;
    private String nombre = null;
    private Date fechaNacInferior = null;
    private Date fechaNacSuperior = null;
    private String email = null;
    
    /*lista de personas encontradas */
    private List<Persona> personaList;
    
    @PostConstruct
    public void iniciar() {
        log.debug("iniciando ejercicio 6 pagina 1");
        buscar();
    }
    
    public void buscar() {
        log.debug("buscando");
        personaList = ejercicio6PersonaService.buscarPersonas(rut, nombre, fechaNacInferior, fechaNacSuperior, email);
    }

    /*setters and getters*/
    public List<Persona> getPersonaList() {
        return personaList;
    }
    public void setPersonaList(List<Persona> personaList) {
        this.personaList = personaList;
    }
    public Integer getRut() {
        return rut;
    }
    public void setRut(Integer rut) {
        this.rut = rut;
    }
    public String getNombre() {
        return nombre;
    }
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    public Date getFechaNacInferior() {
        return fechaNacInferior;
    }
    public void setFechaNacInferior(Date fechaNacInferior) {
        this.fechaNacInferior = fechaNacInferior;
    }
    public Date getFechaNacSuperior() {
        return fechaNacSuperior;
    }
    public void setFechaNacSuperior(Date fechaNacSuperior) {
        this.fechaNacSuperior = fechaNacSuperior;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
}
